package org.openwebtop.common.aop.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.openwebtop.common.aop.constant.CacheRefreshPeriod;

/**
 * AOP Cache Annotation
 *
 * <br>
 * <br><i>Default refreshPeriod : REFRESH_10_MINUTE</i>
 * <br><i>Default updateError : true</i>
 *
 * @author Jaehyeon Nam
 * @Since 2010. 1. 12.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target( {ElementType.METHOD})
public @interface Cache{
	/**
	 * Cache Refresh Period
	 *
	 * @return Cache Refresh Period
	 */
	CacheRefreshPeriod refreshPeriod() default CacheRefreshPeriod.REFRESH_10_MINUTE;

	/**
	 * 캐시 업데이트 과정에서 예외 발생시 이전 캐시 값을 사용 할지 여부
	 *
	 * @return true - 이전 캐시값 사용, false - 이전 캐시값 사용하지 않음
	 */
	boolean updateError() default true;
}
